import request from "./ajax";
import mockRequest from "./mockRequest";

// 首页三级分类,/api/product/getBaseCategoryList    GET
// axios发请求，返回的是Promise对象

export const reqgetBaseCategoryList = () => {
    return request({
        url: "/product/getBaseCategoryList",
        method: "get",
    })
}

// 轮播图
export const reqgetBannerList = () => {
    return mockRequest({
        url: "/banner",
        method: "get",
    })
}

// floor
export const reqgetFloorList = () => {
    return mockRequest({
        url: "/floor",
        method: "get",
    })
}

// search搜索页面，接口: /api/list, 请求: POST
// 调用是不穿parmas，报错201； 至少传一个空对象;
//params形参:是当用户派发action的时候，第二个参数传递过来，至少是个空对象
export const reqgetSearchList = (parmas) => {
    return request({
        url: "/list", 
        method: "post",
        data: parmas,
    })
}

// detail详情页, 请求地址：/api/item/{ skuId }， 请求get
export const reqgetDetailInfo = (skuId) => {
    return request({
        url: `/item/${skuId}`, 
        method: "get",
    })
}

// 加入购物车(对已有物品进行数量改动), 请求地址：/api/cart/addToCart/{ skuId }/{ skuNum }， 请求POST
export const reqAddshopCart = (skuId, skuNum) => {
    return request({
        url: `/cart/addToCart/${ skuId }/${ skuNum }`, 
        method: "post",
    })
}

// 获取购物车列表，请求地址：/api/cart/cartList， 请求GET
export const reqCartList = () => {
    return request({
        url: "/cart/cartList", 
        method: "get",
    })
}

// 删除购物车商品，请求地址：/api/cart/deleteCart/{skuId}， 请求DELETE
export const reqDeleteCartList = (skuId) => {
    return request({
        url: `/cart/deleteCart/${skuId}`, 
        method: "delete",
    })
}

// 购物车是否勾选isChecked，请求地址：/api/cart/checkCart/{skuID}/{isChecked}， 请求GET
export const reqUpdateIsChecked = (skuId, isChecked) => {
    return request({
        url: `/cart/checkCart/${skuId}/${isChecked}`, 
        method: "get",
    })
}

// 注册登录获取验证码， 请求地址：/api/user/passport/sendCode/{phone}， 请求GET
export const reqGetCode = (phone) => {
    return request({
        url: `/user/passport/sendCode/${phone}`, 
        method: "get",
    })
}

// 注册用户， 请求地址：/api/user/passport/register， 请求POST
export const reqUserRegister = (data) => {
    return request({
        url: "/user/passport/register", 
        method: "post",
        data,
    })
}

// 用户登录， 请求地址：/api/user/passport/login， 请求POST
export const reqUserLogin = (data) => {
    return request({
        url: "/user/passport/login", 
        method: "post",
        data,
    })
}

// 添加了token校验获取用户信息，请求地址：/api/user/passport/auth/getUserInfo， 请求GET
export const reqGetUserInfo = () => {
    return request({
        url: "/user/passport/auth/getUserInfo", 
        method: "get",
    })
}

// 用户退出登录，请求地址：/api/user/passport/logout， 请求GET
export const reqUserLogout = () => {
    return request({
        url: "/user/passport/logout", 
        method: "get",
    })
}

// 获取用户地址信息, 请求地址：/api/user/userAddress/auth/findUserAddressList， 请求GET
export const reqGetUserAddress = () => {
    return request({
        url: "/user/userAddress/auth/findUserAddressList", 
        method: "get",
    })
}

// 获取订单交易页信息, 请求地址：/api/order/auth/trade， 请求GET
export const reqGetOrderInfo = () => {
    return request({
        url: "/order/auth/trade", 
        method: "get",
    })
}
// --------------------------------------------------------------------------
// 上面请求使用vuex仓库请求并存储数据；
// 下面开始使用组件发请求(1、可以和vuex一样，每个组件引用当前请求接口，较麻烦),2、全局配置（使用）；

// 提交订单， 请求地址：/api/order/auth/submitOrder?tradeNo={tradeNo}， 请求POST
export const reqSubmitOrder = (tradeNo, data) => {
    return request({
        url: `/order/auth/submitOrder?tradeNo=${tradeNo}`, 
        method: "post",
        data
    })
}

// 获取订单支付信息, 请求地址：/api/payment/weixin/createNative/{orderId}， 请求GET
export const reqGetOrderPayInfo = (orderId) => {
    return request({
        url: `/payment/weixin/createNative/${orderId}`,
        method: "get"
    })
}

// 查询支付订单状态, 请求地址：/api/payment/weixin/queryPayStatus/{orderId}， 请求GET
export const reqOrderPayStatus = (orderId) => {
    return request({
        url: `/payment/weixin/queryPayStatus/${orderId}`,
        method: "get"
    })
}

// 获取我的订单列表， 请求地址：/api/order/auth/{page}/{limit}，  请求GET
export const reqGetMyOrderInfo = (page, limit) => {
    return request({
        url: `/order/auth/${page}/${limit}`,
        method: "get"
    })
}
